home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 88
/
088.d81
/
getword source
< prev
next >
Wrap
Text File
|
2022-08-26
|
2KB
|
209 lines
open =$ffc0
readst =$ffb7
setlfs =$ffba
setnam =$ffbd
load =$ffd5
getin =$ffe4
clrchn =$ffcc
close =$ffc3 ;a
chrin =$ffcf
chkout =$ffc9 ;x
chkin =$ffc6 ;x
plot =$fff0
chrout =$ffd2
color'pointer =243
screen'line'pointer =209
print'number =$bdcd ;x,a
clear'line =59903
background =53281
border =53280
unlisten =$ffae
clall =$ffe7
;dis
.org $800
.obj "getword 800"
jmp alpha
lda #16
sta mode
jmp start
alpha lda #vallength
sta mode
start jsr get'number
sta text
jsr get'number
sta highlight
jsr get'number
and #127
sta limit
lda #0
sta 56328 ;rem start timer if not on
sta counter
sta length
jsr print'cursor
get'key jsr getin
bne key'pressed
lda 56328
cmp old'time
beq get'key
increment sta old'time
inc counter
lda counter
cmp #3
bne get'key
lda #0
sta counter
lda 251
beq +
jsr un'print'cursor
jmp get'key
+ jsr print'cursor
jmp get'key
key'pressed sta temp
ldx length
beq check'valid
cpx limit
bcc check'valid
cmp #13
beq return
cmp #20
beq delete
bne get'key
check'valid ldy #0
- lda validation'string,y
cmp temp
beq found'it
iny
cpy mode
bne -
beq get'key
found'it lda temp
cmp #13
beq return
cmp #20
beq delete
inc length
lda temp
jsr chrout
jsr print'cursor
ldy length
lda temp
sta string,y
jmp get'key
return lda length
sta 252
sta wlength
ldx <string'name
ldy >string'name
jsr locvar
lda <wlength
ldy >wlength
jsr set'string
jmp un'print'cursor
delete lda length
bne +
jmp get'key
+ dec length
lda #157
jsr chrout
lda " "
jsr chrout
jsr chrout
lda #157
jsr chrout
jsr chrout
jsr print'cursor
jmp get'key
print'cursor lda #1
sta 251
sta 199
lda highlight
sta 646
lda #32
jsr chrout
lda #0
sta 199
lda text
sta 646
lda #157
jmp chrout
un'print'cursor lda #0
sta 251
sta 199
lda #32
jsr chrout
lda #0
sta 199
lda text
sta 646
lda #157
jmp chrout
;x and y point to string name
locvar lda $7a
pha
lda $7b
pha
stx $7a
sty $7b
jsr $b08b
sta $49
sty $4a
pla
sta $7b
pla
sta $7a
rts
set'string sta $64
sty $65
jmp $aa52
;**** get number from BASIC ****
get'number jsr $aefd
jsr $ad8a
jsr $b7f7
lda $14 ; got low byte
rts
highlight .byt 0
text .byt 0
limit .byt 0
length .byt 0
mode .byt 0
validation'string .byt 13,20:.asc ".+-$1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
.asc " \!#$%&'()^*/:="
temp .byt 0
counter .byt 0
found .byt 0
xpos .byt 0
ypos .byt 0
old'time .byt 0
string'name .asc "w$":.byt 0
wlength .byt 0
.word string+1
string .buf 128
vallength =temp-validation'string